package com.zretc.support.service;

import com.zretc.support.entity.Reply;

import com.zretc.support.tool.PageData;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;


import java.util.Date;
import java.util.List;

public interface ReplyService {
    /**
     * 添加回复
     * @param reply
     * @return
     */
    boolean addReply(Reply reply);

    /**
     * 根据问题编号获取回复并分页
     * @param questionId
     * @param startTime
     * @param endTime
     * @param page
     * @param size
     * @return
     */
    PageData<Reply> getReplyByQuestionIDAndPage(int questionId, Date startTime, Date endTime, int page, int size);

    /**
     * 根据用户名获取回复并分页
     * @param userName
     * @param startTime
     * @param endTime
     * @param page
     * @param size
     * @return
     */
    PageData<Reply> getReplyByUserNameAndPage(String userName, Date startTime, Date endTime, int page, int size);

    /**
     * 根据时间段获取回复并分页
     * @param replyContent
     * @param startTime
     * @param endTime
     * @param page
     * @param size
     * @return
     */
    PageData<Reply> getRepliesByTime(String replyContent, Date startTime, Date endTime, int page, int size);

    /**
     * 根据回复编号删除回复
     * @param replyId
     * @return
     */
    boolean delReplyById(Integer replyId);

    /**
     * 根据回复编号获取回复
     * @param replyId
     * @return
     */
    Reply getReplyById(long replyId);

    /**
     * 修改回复信息
     * @param reply
     * @return
     */
    boolean updateReply(Reply reply);

    /**
     * 查询没有parentId的回复（即第一层显示的数据）
     * @param questionId
     * @param page
     * @param size
     * @return
     */
    PageData<Reply> getReplyWithoutPid(long questionId, int page, int size);

    /**
     * 回复下的第二层数据
     * @param parentId
     * @return
     */
    List<Reply> getReplyRe(int parentId);
}
